package com.easylinkin.linkappapi.progress.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.progress.entity.ProgressRealDetail;
//import com.easylinkin.linkappapi.progress.entity.dto.BimIntegrateProgressDTO;
import com.easylinkin.linkappapi.progress.entity.vo.ProgressInfoVo;
import com.easylinkin.linkappapi.progress.entity.vo.ProgressRealDetailVo;
import site.morn.rest.RestMessage;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.Serializable;
import java.util.List;

/**
 * ProgressRealDetail表服务接口
 *
 * @author zhengwen
 * @date 2023/11/20
 */
public interface ProgressRealDetailService extends IService<ProgressRealDetail> {

    /**
     * 新增
     *
     * @param appProgressRealDetail 实体对象
     * @return 操作结果
     */
    boolean saveOne(ProgressRealDetail appProgressRealDetail);

    /**
     * 修改单条
     *
     * @param appProgressRealDetail 实体对象
     * @return 修改结果
     */
    boolean updateOne(ProgressRealDetail appProgressRealDetail);

    /**
     * 查询分页
     *
     * @param page        分页对象
     * @param appProgressRealDetail 分页参数对象
     * @return 查询分页结果
     */
    IPage<ProgressRealDetail> selectPage(Page page, ProgressRealDetail appProgressRealDetail);


    /**
     * 获取单条
     *
     * @param id 主键id
     * @return 查询结果
     */
    ProgressRealDetail getOneById(Serializable id);

    /**
     * 根据id批量删除
     *
     * @param idList 主键列表
     * @return 删除结果
     */
    boolean deleteByIds(List<Long> idList);

    /**
     * 导出表格
     *
     * @param appProgressRealDetail 过滤条件实体对象
     * @param request     请求
     * @param response    响应
     */
    void export(ProgressRealDetail appProgressRealDetail, HttpServletRequest request, HttpServletResponse response);

    /**
     * 分页查询进度计划末级任务
     *
     * @param progressRealDetailVo 查询分页对象
     * @return 所有数据
     */
    RestMessage getDtoPage(Page page, ProgressRealDetailVo progressRealDetailVo);

    /**
     * 新增实际进度填报数据
     *
     * @param progressRealDetailVo 实体对象
     * @return 新增结果
     */
    RestMessage addRealDetail(ProgressRealDetailVo progressRealDetailVo);

    /**
     * 实际进度详情
     *
     * @param id 主键
     * @return 单条数据
     */
    RestMessage realDetail(Long id);
//
//    /**
//     * 大屏实际进度构建信息
//     *
//     * @param progressInfoVo 查询分页对象
//     * @return 统一出参
//     */
//    IPage<BimIntegrateProgressDTO> screenRealProgressIntegrateList(Page page, ProgressInfoVo progressInfoVo);
}

